package com.itheima.polymorphic_demo;

/*
    多态的成员访问 : 重点!!
        1 成员变量 :
        2 成员方法 :
        3 构造方法 :
 */
public class Test2 {
    public static void main(String[] args) {
        // 创建多态对象
        Fu f = new Zi();

        //  System.out.println(f.num);// 多态访问成员变量 : 编译看左边(父类)
        //  System.out.println(f.number); // 多态访问成员变量 : 编译看左边(父类) , 执行看左边(父类)
        // f.method2(); //多态访问成员方法 : 编译看左边(父类)
        f.show();// 多态访问成员方法 : 编译看左边(父类) , 执行看右边(子类)

        f.method();// 父类存在此方法 , 但是子类不存在 , 运行会报错吗?  不会报错,执行继承父类的方法
    }
}

// 父类
class Fu {
    // 成员变量
    int number = 10;

    // 构造方法
    public Fu() {
    }

    public void show() {
        System.out.println("父类的show方法...");
    }

    public void method(){
        System.out.println("父类的method的方法...");
    }
}

// 子类
class Zi extends Fu{
    // 成员变量
    int number = 100;
    int num = 1;

    // 构造方法
    public Zi() {
    }

    @Override
    public void show() {
        System.out.println("子类的show方法...");
    }

    public void method2(){
        System.out.println("子类的method2方法");
    }
}